<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/1/22
 * Time: 16:53
 */

namespace app\admin\controller;


use app\model\EquipmentModel;
use app\model\Menu;
use think\Controller;
//公共继承类
class Common extends Controller
{
    /*
     * 构造函数
     */
    public function _initialize()
    {
        if (!(session('user'))){//未登陆
            $this->redirect('Index/login');
        }
    }
    /*
     * 点卡类型
     */
    public function recha_time_type($type=-1)
    {
        $data=[
            //类型=>[时间戳，描述-天，描述-卡]
           0=> [2592000,'30天','月卡'],
           1=> [7776000,'90天','季卡'],
           2=> [31536000,'30天','年卡'],
        ];
        if ($type!=-1){

            return $data[$type];
        }
        return $data;
    }
    /*
 * 判断数据库操作是否成功
 *  $Database 数据库操作
 *  return 失败成功都返回
 * $data 返回数据
 */
    function setDatabase($Database=false,$retData='操作',$data=[]){
        if (!$Database){
            return retJson($data,201,$retData.'失败');

        }
        return retJson($data,200,$retData.'成功');
    }

    /*
 * 判断数据库操作是否成功
 *
 *  只有失败返回
 */
    function setDatabaseDef($Database=false,$retData='操作失败'){
        if (!$Database){
            retJson('',201,$retData)->send();
            exit();
        }
    }
    //根据登陆用户id，返回该用户的设备组
    public function equs()
    {
        $user_id=$this->sess_where();
        if ($user_id){
            $getEqu_name=  EquipmentModel::where('equ_user',$user_id)->column('name');
			 if (empty($getEqu_name)){
                return -1;
            }
            return $getEqu_name;
        }
    }
//查看登陆用户是否超管，是不返还，否返回用户id
    public function sess_where()
    {
      $admin= session('admin');
        if (isset($admin)&&$admin->type==0){//管理员登陆---普通用户
            return $admin->id;
        }
       $user=session('user');
        if ($user->type==0){//直接登陆----普通用户
            return $user->id;
        }

    }

    /*
      * 生成无限树形数组
      * $arr 总数据
      * $array 母目录数据（调用本方法放最大一层目录）
      *        重复调用时填该层的数据
      */
    public function shu($arr,$array)
    {
        $data=$array;
        foreach ($array as $k=>$v){
            $data2=[];
            foreach ($arr as $key=>$value){
                if ($value['follow_id']==$v['id']){//找到子目录（follow_id指向母目录id）
                    array_push($data2,$value);//把目录放入母目录的"menu"下
                }
                $data2 = $this->shu($arr,$data2);
                $data[$k]['menu']=$data2;
            }
        }
        return $data;
    }
    /*
      * 生成无限树形数组
      * $arr 总数据
      * $array 母目录数据（调用本方法放最大一层目录）
      *        重复调用时填该层的数据
     * $users 所有下级（id数组）
      */
    public function shu3($arr,$array,$users=[])
    {
//        $data=$array;
//        dump($arr);
//        dump($array);
        $user_id=[];
        foreach ($array as $k=>$v){
            $data2=[];
            foreach ($arr as $key=>$value){
                if ($value['follow_id']==$v['id']){//找到子目录（follow_id指向母目录id）
                    array_push($users,$value['user_id']);//把目录放入母目录的"menu"下
                    array_push($data2,$value);//把目录放入母目录的"menu"下
                 }
            }
//            $data2 = $this->shu($arr,$data2);

            $users = $this->shu3($arr,$data2,$users);

        }

        return $users;
    }
}